package com.zhonghui.wms.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 智能仓储WMS-入库申请对象 wms_warehousing_application
 *
 * @author zhonghui
 * @date 2023-08-07
 */

@ApiModel("智能仓储WMS-入库申请对象")
public class WmsWarehousingApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    private Long id;

    /** 申请单号 */
    @Excel(name = "申请单号")
    @ApiModelProperty("申请单号")
    private String documentNo;

    /** 关联单据id */
    @Excel(name = "关联单据id")
    @ApiModelProperty("关联单据id")
    private Long documentNoId;

    /** 申请人 */
    @Excel(name = "申请人")
    @ApiModelProperty("申请人")
    private Long applicant;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("申请日期")
    private Date applicationDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    @ApiModelProperty("申请状态")
    private Long applicationStatus;

    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty("审核人")
    private Long approved;

    /** 审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("审核日期")
    private Date approvedDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty("审核状态")
    private Long approvedStatus;

    /** 审核意见 */
    @Excel(name = "审核意见")
    @ApiModelProperty("审核意见")
    private String approvedComments;

    /** 业务类型 */
    @Excel(name = "业务类型")
    @ApiModelProperty("业务类型")
    private Long businessType;

    /** 供应商 */
    @Excel(name = "供应商")
    @ApiModelProperty("供应商")
    private Long supplierId;

    /** 合同类型 */
    @Excel(name = "合同类型")
    @ApiModelProperty("合同类型")
    private Long contractType;

    /** 申请类型 */
    @Excel(name = "申请类型")
    @ApiModelProperty("申请类型")
    private Long applicationType;

    /** 入库状态 */
    @Excel(name = "入库状态")
    @ApiModelProperty("入库状态")
    private Long documentStatus;

    /** 智能仓储WMS-入库申请明细信息 */
    @ApiModelProperty("智能仓储WMS-入库申请明细信息")
    private List<WmsWarehousingApplicationDetails> wmsWarehousingApplicationDetailsList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public String getDocumentNo() {
        return documentNo;
    }

    public void setDocumentNo(String documentNo) {
        this.documentNo = documentNo;
    }

    public void setDocumentNoId(Long documentNoId)
    {
        this.documentNoId = documentNoId;
    }

    public Long getDocumentNoId()
    {
        return documentNoId;
    }
    public void setApplicant(Long applicant)
    {
        this.applicant = applicant;
    }

    public Long getApplicant()
    {
        return applicant;
    }
    public void setApplicationDate(Date applicationDate)
    {
        this.applicationDate = applicationDate;
    }

    public Date getApplicationDate()
    {
        return applicationDate;
    }
    public void setApplicationStatus(Long applicationStatus)
    {
        this.applicationStatus = applicationStatus;
    }

    public Long getApplicationStatus()
    {
        return applicationStatus;
    }
    public void setApproved(Long approved)
    {
        this.approved = approved;
    }

    public Long getApproved()
    {
        return approved;
    }
    public void setApprovedDate(Date approvedDate)
    {
        this.approvedDate = approvedDate;
    }

    public Date getApprovedDate()
    {
        return approvedDate;
    }
    public void setApprovedStatus(Long approvedStatus)
    {
        this.approvedStatus = approvedStatus;
    }

    public Long getApprovedStatus()
    {
        return approvedStatus;
    }
    public void setApprovedComments(String approvedComments)
    {
        this.approvedComments = approvedComments;
    }

    public String getApprovedComments()
    {
        return approvedComments;
    }
    public void setBusinessType(Long businessType)
    {
        this.businessType = businessType;
    }

    public Long getBusinessType()
    {
        return businessType;
    }
    public void setSupplierId(Long supplierId)
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId()
    {
        return supplierId;
    }
    public void setContractType(Long contractType)
    {
        this.contractType = contractType;
    }

    public Long getContractType()
    {
        return contractType;
    }
    public void setApplicationType(Long applicationType)
    {
        this.applicationType = applicationType;
    }

    public Long getApplicationType()
    {
        return applicationType;
    }
    public void setDocumentStatus(Long documentStatus)
    {
        this.documentStatus = documentStatus;
    }

    public Long getDocumentStatus()
    {
        return documentStatus;
    }

    public List<WmsWarehousingApplicationDetails> getWmsWarehousingApplicationDetailsList()
    {
        return wmsWarehousingApplicationDetailsList;
    }

    public void setWmsWarehousingApplicationDetailsList(List<WmsWarehousingApplicationDetails> wmsWarehousingApplicationDetailsList)
    {
        this.wmsWarehousingApplicationDetailsList = wmsWarehousingApplicationDetailsList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("documentId", getDocumentNo())
                .append("documentNoId", getDocumentNoId())
                .append("applicant", getApplicant())
                .append("applicationDate", getApplicationDate())
                .append("applicationStatus", getApplicationStatus())
                .append("approved", getApproved())
                .append("approvedDate", getApprovedDate())
                .append("approvedStatus", getApprovedStatus())
                .append("approvedComments", getApprovedComments())
                .append("remark", getRemark())
                .append("businessType", getBusinessType())
                .append("supplierId", getSupplierId())
                .append("contractType", getContractType())
                .append("applicationType", getApplicationType())
                .append("documentStatus", getDocumentStatus())
                .append("wmsWarehousingApplicationDetailsList", getWmsWarehousingApplicationDetailsList())
                .toString();
    }
}
